package com.ftg.learn.chapter07;

import java.util.Arrays;

/**
 * 字符串常见方法
 *
 * @author kangjx
 * @createTime 2022/12/29
 */
public class String04 {

    public static void main(String[] args) {
        String date = "2022-12-29";
        String[] dates = date.split("-");

        //对字符串 按照对应的分隔符 进行分隔以后产生的数组
        System.out.println(Arrays.toString(dates));

        String str = "abcdefg";

        char[] chars = str.toCharArray();
        System.out.println(Arrays.toString(chars));


        String content = "Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称，一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。\n" +
                "\n" +
                "Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集，帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。\n" +
                "\n" +
                "Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。\n" +
                "\n";
        String target = "Nacos";
        int first = content.indexOf(target);
        System.out.println(" content 第一次出现的 Nacos在哪个位置 " + first);

        //indexof(string,fromindex) 从左侧来查
        int second = content.indexOf(target, first + target.length());
        System.out.println(" content 第二次出现的 Nacos在哪个位置 " + second);

        int third = content.indexOf(target, second + target.length());
        System.out.println(" content 第三次出现的 Nacos在哪个位置 " + third);


        System.out.println("第一部分" + content.substring(0, first + target.length()));
        System.out.println("第二部分" + content.substring(first + target.length(), second));
        System.out.println("第三部分" + content.substring(second + target.length(), third));

        //求content当中一共有多少个nacos
        int num = 0;
        for (int i = content.indexOf(target); i != -1; i = content.indexOf(target, i + target.length())) {
            num++;
        }
        System.out.println(num);

        String04 s = new String04();
        System.out.println("递归调用");
        int n = s.getOne(content, target, 0);
        System.out.println(n+"==>num");

        String substr = "15326619037".substring(3,7);
        System.out.println("15326619037".replace(substr, "****"));
        System.out.println(" a bc ".trim());

        System.out.println("abc".startsWith("a"));
        System.out.println("abc".endsWith("c"));
        System.out.println("abc".contains("b"));

    }

    /**
     * 从formindex处，查找sources里面第一次出现的target
     *
     * @param sources
     * @param target
     * @param fromIndex
     * @return
     */
    public int getOne(String sources, String target, int fromIndex) {
        int num = 0;
        int n = sources.indexOf(target, fromIndex);
        System.out.println(n);
        if (n == -1) {
            return -1;
        } else {
            num++;
             this.getOne(sources, target, n + target.length());
             return num;
        }
    }

    // 1 - 100累加和 （递归）

    /**
     * for循环进行处理
     *
     * @param source 源
     * @param target 目标
     * @return
     */
    public int getCount(String source, String target) {
        if (null == source || null == target) {
            return -1;
        }
        int num = 0;
        for (int i = source.indexOf(target); i != -1; i = source.indexOf(target, i + target.length())) {
            num++;
        }
        return num;
    }

    //string 不可变的字符序列



}
